iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 30
0
Modern Web

PHP框架-Symfony4 + api platform 系列 第 30

Day#30 Maker Bundle 讓我們少做很多事,少打很多字!!

  • 分享至 

  • xImage
  •  

哇!!!!! 好興奮阿(>ε<)~~~ 最後一篇了!!!!


在建立實體類及Validation的時候,我們都會自己建立Class , 然後自己去extends相關的Interface or Class,
在實體類,甚至會自己透過快捷鍵產生Getter and Setter ,
其實Maker Bundle 可以透過指令來幫我們處理這一系列的事情 !!

啥!!!!? 你說什麼!!!? 早說阿!!! 為什麼不早說 ~? (д) ゚゚

好啦雖然有那麼一點晚了,但小菜鳥這不就要說了嗎~


首先!! 先來執行以下安裝Maker Bundle

composer require maker --dev

再來,我們要透過以下指令來查看Maker底下有那些我們可以用的指令

php bin/console

找到 make 底下會看見如下圖

其實有兩個可以用的指令,小菜鳥也不知道為什麼沒出現在上面,但出現在上面的肯定是可以使用的~

哪兩個呢 ? make:Validator 和 make:migration , 驗證 及 更改資料庫內容的檔案,

migration 是可以透過更改實體類裡跟資料庫相關的屬性去執行migration相關指令同步更改資料庫裡欄位的屬性,
這個說起來可能要連整個Orm 和 Doctrine一起講了...之後有緣再來發一篇獨立文章講解吧~

那以下來示範利用make:entity指令來建立一個實體類吧 !!

  • 執行以下指令,來創建一個新的Entity

    php bin/console make:entity
    
  • 接著輸入我們要的Entity名稱 (如果Entity名稱已存在,代表我們是在update這個實體類)

  • 第二個,如果我們有使用Api platform , make bundle會很智能的問我們是否要將這個實體類看作一個Api Resource

  • 再來,輸入我們所要的第一個欄位的名稱

  • 設定這個欄位的型態 (預設為string,如果設定是預設值,直接按enter下一步就好,其餘還有integer boolean 之類的型態)

  • 設定這個欄位的字數 ( 預設是255 , 如果沒有要更改,一樣按enter往下~)

  • 設定這個欄位在資料庫是否可以為空 ( 預設是不可為空)

  • 接著就可以新增下一個欄位, 如果沒有其它的欄位要新增的話,可以直接按enter跳出

    這裡有兩個要注意的地方 !!

    1. id我們不用自己建,make:entity會幫我們建
    2. 當我們透過make:entity 建立完實體類後, 它還會自動幫我們新增相對應的Repository

    make bundle 是不是hen貼心 !!!! 重點是 , 它連getter 和 setter 都可以自動幫我們生好 !!


以上說了露露長~~ 就是要說 我們建立一些Class的時候,可以透過指令,簡單的來解決!

這次30篇的篇幅到這邊告一段落了,
小菜鳥第一次參賽,文章說明的可能有點二二六六,希望各位看官們還算看得懂...

有錯誤的地方,或是講解不周的地方,還請各位大大們指點(^人^)

其實也不知道要打些什麼感想....但明年會來挑戰前端(React) and (Vue) 比較的部分,
之後有機會才會跳脫Modern Web這個主題吧 ! 畢竟小菜鳥長大需要些時間嘛(๑•́ ₃ •̀๑)

希望這次的30篇文章可以讓各位看官們像圖1一樣, 不要像圖2一樣R....
不然小菜鳥會hen難過的(;´༎ຶД༎ຶ`)

圖1

圖2

好啦~ 謝謝收看 ,

我是Ivy ~我們明年再見囉 ^_^


上一篇
Day29# 建立創建使用者及登入的共用API test function
系列文
PHP框架-Symfony4 + api platform 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
theRookie
iT邦新手 1 級 ‧ 2020-09-30 09:27:00

Ivy iT邦新手 5 級 ‧ 2020-09-30 09:52:25 檢舉

至少不是那隻哭哭狗/images/emoticon/emoticon37.gif

我要留言

立即登入留言